package com.atguigu.gmall.task.scheduled;

import com.atguigu.gmall.common.constant.RabbitConst;
import com.atguigu.gmall.common.service.RabbitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author: 封捷
 * @create-date: 2022/9/18 14:35
 */
@EnableScheduling
@Component
public class ScheduledTask {

    @Autowired
    private RabbitService rabbitService;

    @Scheduled(cron = "0 26 16 * * ?")
    public void taskClearCache() {

        rabbitService.sendMessage(RabbitConst.EXCHANGE_DIRECT_TASK, RabbitConst.ROUTING_TASK_18, "");
    }

    // 每天的凌晨 1 点执行：0 0 1 * * ?
    // 用于测试：0 43 14 * * ?
    @Scheduled(cron = "0 24 15 * * ?")
    public void taskToLoadCache() {
        // 接收到消息时，从数据库读取全部秒杀商品数据，没有查询条件，所以消息队列没有需要传的数据
        // 发消息仅仅只是为了触发后续的操作
        rabbitService.sendMessage(
                RabbitConst.EXCHANGE_DIRECT_TASK,
                RabbitConst.ROUTING_TASK_1,
                "no content");
    }

    // 每一秒都执行：* * * * * ?
    // 每天的凌晨 1 点执行：0 0 1 * * ?
    // 用于测试：0 43 14 * * ?
    // @Scheduled(cron = "0 43 14 * * ?")
    // public void doScheduledTask() {
    //     System.out.println("定时任务执行了。。。");
    // }

}
